package com.lzs.bootsafety.common.oss;

import com.lzs.bootsafety.business.oss.entity.SysFile;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
/**
 *  @author  zhanshi Liu
 *  @date    2020/04/19
 *  @website www.jhmsona.cn
 *
 */
public interface FileUpload {
    /**
     * 上传文件
     *
     * @param file       待上传的文件流
     * @param suffix     文件后缀
     * @param save       是否保存
     */
    SysFile upload(InputStream file, String suffix, boolean save);

    /**
     * 上传文件
     *
     * @param file       待上传的文件
     * @param save       是否保存
     */
    SysFile upload(File file, boolean save);

    /**
     * 上传文件
     *
     * @param file       待上传的文件
     * @param save       是否保存
     */
    SysFile upload(MultipartFile file, boolean save);

    /**
     * 文件下载
     * @param filePath     文件路径
     * @param storageType  存储类型
     */
    boolean download(String filePath,String storageType);

    /**
     * 删除文件
     *
     * @param filePath   文件路径
     * @param storageType 存储类型
     */
    boolean delete(String filePath,String storageType);
}
